package com.dream.xiaobo.service.impl;

import com.dream.xiaobo.dao.impl.ProductDaoImpl;
import com.dream.xiaobo.entity.PageBean;
import com.dream.xiaobo.entity.Product;
import com.dream.xiaobo.service.ProductService;

import java.lang.reflect.InvocationTargetException;
import java.sql.SQLException;
import java.util.List;


/**
 * @author xiaobo
 * @date 2021/8/31 - 13:25
 */
public class ProductServiceImpl implements ProductService {

    //创建productDao实例化对象
    private ProductDaoImpl productDao = new ProductDaoImpl();

    /**
     * 分页逻辑方法
     * @param tId
     * @param page
     * @param pageSize
     * @return
     * @throws SQLException
     */
    @Override
    public PageBean<Product> findPage(String tId, Integer page, Integer pageSize) throws SQLException {

        //调用查询总数据条数方法
        Long count = productDao.selectCountBytId(tId);
        //调用分页查询方法
        List<Product> list = productDao.selectProductByPage(tId, page, pageSize);
        //将分页信息带回返回分页实体类
        return new PageBean<Product>(list,page,pageSize,count);
    }

    /**
     * 商品信息逻辑方法
     * @param pId
     * @return
     * @throws SQLException
     */
    @Override
    public Product findProductByPId(String pId) throws SQLException {

        //调用查询商品信息的方法
        Product product = productDao.selectProductByPId(pId);
        //返回查询到的信息
        return product;
    }

    /**
     * 商品信息逻辑接口（全部）
     * @return
     * @throws SQLException
     * @throws InvocationTargetException
     * @throws IllegalAccessException
     */
    @Override
    public List<Product> findProduct() throws SQLException, InvocationTargetException, IllegalAccessException {

        List<Product> list = productDao.selectProduct();

        return list;
    }

    /**
     * 添加商品接口实现方法
     * @param product
     * @throws SQLException
     */
    @Override
    public void insertProduct(Product product) throws SQLException {

        productDao.insertProduct(product);

    }
}
